package(
    default_visibility = ["//visibility:public"],
)

# >>> JNI headers

genrule(
    name = "copy_link_jni_header",
    srcs = ["@bazel_tools//tools/jdk:jni_header"],
    outs = ["jni/jni.h"],
    cmd = "cp -f $< $@",
)

genrule(
    name = "copy_link_jni_md_header",
    srcs = select({
        "@bazel_tools//src/conditions:darwin": ["@bazel_tools//tools/jdk:jni_md_header-darwin"],
        "@bazel_tools//src/conditions:freebsd": ["@bazel_tools//tools/jdk:jni_md_header-freebsd"],
        "@bazel_tools//src/conditions:openbsd": ["@bazel_tools//tools/jdk:jni_md_header-openbsd"],
        "@bazel_tools//src/conditions:windows": ["@bazel_tools//tools/jdk:jni_md_header-windows"],
        "//conditions:default": ["@bazel_tools//tools/jdk:jni_md_header-linux"],
    }),
    outs = ["jni/jni_md.h"],
    cmd = "cp -f $< $@",
)

cc_library(
    name = "jni_inc",
    hdrs = [
        ":jni/jni.h",
        ":jni/jni_md.h",
    ],
    includes = ["jni"],
)

# <<< JNI headers

genrule(
    name = "license",
    srcs = ["@org_brotli//:LICENSE"],
    outs = ["META-INF/LICENSE"],
    cmd = "cp -f $< $@",
)

########################################################
# WARNING: do not (transitively) depend on this target!
########################################################
cc_binary(
    name = "brotli_jni.dll",
    srcs = [
        "//org/brotli/wrapper/common:jni_src",
        "//org/brotli/wrapper/dec:jni_src",
        "//org/brotli/wrapper/enc:jni_src",
        "@org_brotli//:common_headers",
        "@org_brotli//:common_sources",
        "@org_brotli//:dec_headers",
        "@org_brotli//:dec_sources",
        "@org_brotli//:enc_headers",
        "@org_brotli//:enc_sources",
    ],
    linkshared = 1,
    deps = [
        ":jni_inc",
        "@org_brotli//:brotli_inc",
    ],
)

########################################################
# WARNING: do not (transitively) depend on this target!
########################################################
cc_binary(
    name = "brotli_jni_no_dictionary_data.dll",
    srcs = [
        "//org/brotli/wrapper/common:jni_src",
        "//org/brotli/wrapper/dec:jni_src",
        "//org/brotli/wrapper/enc:jni_src",
        "@org_brotli//:common_headers",
        "@org_brotli//:common_sources",
        "@org_brotli//:dec_headers",
        "@org_brotli//:dec_sources",
        "@org_brotli//:enc_headers",
        "@org_brotli//:enc_sources",
    ],
    defines = [
        "BROTLI_EXTERNAL_DICTIONARY_DATA=",
    ],
    linkshared = 1,
    deps = [
        ":jni_inc",
        "@org_brotli//:brotli_inc",
    ],
)
